package com.elinkway.infinitemovies.bean;

import com.lvideo.http.bean.LVideoBaseBean;

import java.util.ArrayList;

/**
 * Created by huangxiaojian on 2017/5/31.
 *
 */

public class YzAdBean implements LVideoBaseBean {
    private static final long serialVersionUID = 1634413822285001345L;

    public AdInfo adInfo;

    public static class AdInfo implements LVideoBaseBean {

        private static final long serialVersionUID = 6063185184429508051L;
        /**
         * 广告对应的柚子id
         */
        public String yzid;
        /**
         * HTML 类型广告物料，内容为已渲染的 HTML 代码，可以直接进行展示
         */
        public String html_snippet;
        /**
         * 广告标题
         */
        public String title;
        /**
         * 广告描述信息
         */
        public String description;
        /**
         * 广告描述信息2，原生广告可能包含该字段
         */
        public String sub_description;
        /**
         * 点击行为地址，在客户端进行响应，经过多次跳转最终 会到达目标地址，该 url 需要用户进行宏替换
         */
        public String click_url;
        /**
         * 大图的图片信息
         */
        public ArrayList<ImageInfo> images;

        /**
         * 图标的图片信息
         */
        public ArrayList<ImageInfo> icons;
        /**
         * logo的图片信息
         */
        public ArrayList<ImageInfo> logos;
        /**
         * 广告为应用推广时，应用截屏的图片信息
         */
        public ArrayList<ImageInfo> snapshots;
        /**
         * deeplink 地址
         */
        public String deeplink;
        public String app_name;
        /**
         * 原生广告使用，包含了原生广告数据类素材
         */
        public ArrayList<DataInfo> datas;
        /**
         * ActionType
         */
        public int act_type;

        /**
         * AdType
         */
        public int type;
        public ArrayList<AdTracker> adTrackers;
        /**
         * 广告失效时间
         */
        public String expiration;

    }

    public static class ImageInfo implements LVideoBaseBean {

        private static final long serialVersionUID = 8810844032437304628L;
        /**
         * 图片url地址
         */
        public String url;

        /**
         * 图片尺寸
         */
        public Size size = new Size();
    }

    public static class Size implements LVideoBaseBean {
        private static final long serialVersionUID = 1884382231226223156L;
        public String width;
        public String height;
    }

    public static class DataInfo implements LVideoBaseBean {

        private static final long serialVersionUID = -4345272939366591051L;
        /**
         * DataType
         */
        public int type;
        /**
         * 数据格式化字符串的值
         */
        public String value;

    }

    public static class AdTracker implements LVideoBaseBean {

        private static final long serialVersionUID = -8866565547580689629L;

        /**
         * TrackerType
         */
        public int type;
        /**
         * 对应的广告事件上报地址，用户需要对 url 进行宏替换
         * 等处理之后，使用HTTP GET方式进行上报，并且需要 跟随 302 跳转
         */
        public ArrayList<String> urls;
    }

    /**
     * 上报信息，包含展现、点击、安装等广告事件上报信息， 接入方需要根据要求进行事件上报
     */
    public interface TrackerType {
        /**
         * 广告展现
         */
        int TRACKER_TYPE_1 = 1;
        /**
         * 广告点击
         */
        int TRACKER_TYPE_2 = 2;
        /**
         * 广告被用户关闭
         */
        int TRACKER_TYPE_3 = 3;
        /**
         * 应用下载开始
         */
        int TRACKER_TYPE_4 = 4;
        /**
         * 应用下载完成
         */
        int TRACKER_TYPE_5 = 5;
        /**
         * 应用安装完成
         */
        int TRACKER_TYPE_6 = 6;
        /**
         * 应用开始安装
         */
        int TRACKER_TYPE_7 = 7;
    }

    /**
     * 数据素材类型
     */
    public interface DataType {
        /**
         * 文本，广告主厂商或者公司名
         */
        int TYPE_1 = 1;
        /**
         * 数目，广告产品的评级，譬如 APP 评级为 0-5
         */
        int TYPE_3 = 3;
        /**
         * 数目，多少人喜欢或者好评
         */
        int TYPE_4 = 4;
        /**
         * 数目，多少次下载或者安装
         */
        int TYPE_5 = 5;
        /**
         * 数目，产品/APP/应用内价格，显示时加上本地价格单位
         */
        int TYPE_6 = 6;
        /**
         * 数目，售价，可能是 price 的折扣价，显示时加上本地价格单位
         */
        int TYPE_7 = 7;
        /**
         * 格式化文本，电话号码
         */
        int TYPE_8 = 8;
    }

    /**
     * 广告交互类型
     */
    public interface ActionType {
        /**
         * 打开网页。在 WebView 或者浏览器中打开目标地址，建议使用应用内 WebView 打开，以免跳出应用
         */
        int ACTION_TYPE_1 = 1;
        /**
         * 下载应用。Android 可设置为直接下载并且跳转至安装界面 示用户安装
         */
        int ACTION_TYPE_2 = 2;
        int ACTION_TYPE_3 = 3;
    }

    /**
     * 广告类型
     */
    public interface AdType {
        /**
         * TEXT，纯文本类型，一般由 title、description 组成
         */
        int AD_TYPE_1 = 1;
        /**
         * IMAGE，纯图片类型，一般由单张或者多张 image 组成
         */
        int AD_TYPE_2 = 2;
        /**
         * TEXTICON，图文类型，一般由单张 icon 和 title、description 共同组成
         */
        int AD_TYPE_3 = 3;
        /**
         * HTML，HTML 类型，可直接使用 html_snippet 进行展示
         */
        int AD_TYPE_4 = 4;
        /**
         * VIDEO，视频类型，目前尚不支持
         */
        int AD_TYPE_5 = 5;
        /**
         * NATIVE，原生类型，可能包含 title、description、sub_description、image、 icon、logo、datas 字段的任意组合
         */
        int AD_TYPE_6 = 6;
    }
}
